// Grunt 的入口文件
// 用于定义一些需要 Grunt 自动执行的任务
// 需要导出一个函数
// 此函数接收一个 grunt 的形参，内部提供一些创建任务是可以用到的 API



module.exports = grunt => {
  // grunt.registerTask('foo', () => {
  //   console.log('hello grunt~')
  // })

  // grunt.registerTask('bar', '任务描述', () => {
  //   console.log('other task~')
  // })

  // grunt.registerTask('default', () => {
  //   console.log('default task~')
  // })

  // grunt.registerTask('default', ['foo', 'bar'])

  // grunt.registerTask('async-task', () => {
  //   setTimeout(() => {
  //     console.log('async task workding~')
  //   }, 1000)
  // })

  // grunt.registerTask('async-task', function () {
  //   const done = this.async()
  //   setTimeout(() => {
  //     console.log('async task working~')
  //     done()
  //   })
  // })

  // grunt.registerTask('bad', () => {
  //   console.log('bad workding~')
  //   return false
  // })
  
  // grunt.registerTask('foo', () => {
  //   console.log('foo task~')
  // })

  // grunt.registerTask('bar', () => {
  //   console.log('bar task~')
  // }) 

  // grunt.registerTask('default', ['foo','bad','bar'])

  // grunt.registerTask('bad-async', function () {
  //   const done = this.async()
  //   setTimeout(() => {
  //     console.log('bad async')
  //     done(false)
  //   }, 1000)
  // })

  // grunt 配置方法
  // grunt.initConfig({
  //   foo: {
  //     bar: 123
  //   }
  // })

  // grunt.registerTask('foo', () => {
  //   console.log(grunt.config('foo.bar'))
  // })

  // grunt.initConfig({
  //   build: {
  //     options: {
  //       foo: 'bar'
  //     },
  //     css: {
  //       options: {
  //         foo: 'baz'
  //       }
  //     },
  //     js: '2'
  //   }
  // })

  // // 多目标模式，可以让任务根据配置形成多个子任务
  // grunt.registerMultiTask('build', function () {
  //   console.log(this.options())
  //   console.log(`target: ${this.target}, data: ${this.data}`)
  // })

  // 插件的使用
  const sass = require('sass')
  grunt.initConfig({
    sass: {
      options: {
        implementation: sass
      }
      main: {
        files: {
          'dis/css/main.css': 'src/scss/main/scss'
        }
      }
    }
  })

  grunt.loadNpmTasks('grunt-sass')

}